Micron Document
NexusPi Git Node

Node / mirrors / MeshChatX / files / scripts / ci / github-verify-frozen-codec2.sh

Displaying Raw • Download

scripts/ci/github-verify-frozen-codec2.sh e605e8fe8c3a2ea3d09e34e10b964c43ad4d5262 (e605e8fe) Text, 2.96 KB

T8b949e#!/usr/bin/env bash
T8b949e# Fail if frozen pycodec2 cannot resolve libcodec2.
T8b949e#
T8b949e# Usage:
T8b949e# github-verify-frozen-codec2.sh [build/exe]
Tffa657set -euo pipefail

Te6edf3ROOTTff7b72=Ta5d6ff"Tff7b72$(Tffa657cd Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Te6edf3$0Ta5d6ff"Tff7b72)Ta5d6ff/../..Ta5d6ff" Tff7b72&& Tffa657pwdTff7b72)Ta5d6ff"
Te6edf3BUILD_EXETff7b72=Ta5d6ff"Tffd700${Te6edf31Tff7b72:-Tffd700${Te6edf3ROOTTffd700}Tb4b4b4/build/exeTffd700}Ta5d6ff"

Tff7b72if Tff7b72[Tff7b72[ ! -d Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen codec2 verify: cx_Freeze output not found at Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi

Tff7b72if Tff7b72[Tff7b72[ ! -d Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/libTa5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tff7b72for sub Tff7b72in Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff"/*Tb4b4b4; Tff7b72do
Tff7b72if Tff7b72[Tff7b72[ -d Ta5d6ff"Tffd700${Te6edf3subTffd700}Ta5d6ff/libTa5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3BUILD_EXETff7b72=Ta5d6ff"Tffd700${Te6edf3subTffd700}Ta5d6ff"
Tff7b72break
Tff7b72fi
Tff7b72done
Tff7b72fi

Te6edf3PKGTff7b72=Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/lib/pycodec2Ta5d6ff"
Tff7b72if Tff7b72[Tff7b72[ ! -d Ta5d6ff"Tffd700${Te6edf3PKGTffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen codec2 verify: missing Tffd700${Te6edf3PKGTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi

Tffa657shopt -s nullglob
Te6edf3extsTff7b72=Tff7b72(Ta5d6ff"Tffd700${Te6edf3PKGTffd700}Ta5d6ff"/pycodec2*.so Ta5d6ff"Tffd700${Te6edf3PKGTffd700}Ta5d6ff"/pycodec2*.pyd Ta5d6ff"Tffd700${Te6edf3PKGTffd700}Ta5d6ff"/pycodec2*.dylibTff7b72)
Tffa657shopt -u nullglob
Tff7b72if Tff7b72[Tff7b72[ Tffd700${#Te6edf3extsTb4b4b4[@]Tffd700} -eq T79c0ff0 Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen codec2 verify: no pycodec2 extension under Tffd700${Te6edf3PKGTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Te6edf3EXTTff7b72=Ta5d6ff"Tffd700${Te6edf3extsTb4b4b4[0]Tffd700}Ta5d6ff"

Tffa657shopt -s nullglob
Te6edf3candidatesTff7b72=Tff7b72(
Ta5d6ff"Tffd700${Te6edf3PKGTffd700}Ta5d6ff"/libcodec2.dylib
Ta5d6ff"Tffd700${Te6edf3PKGTffd700}Ta5d6ff"/libcodec2.so
Ta5d6ff"Tffd700${Te6edf3PKGTffd700}Ta5d6ff"/libcodec2.dll
Ta5d6ff"Tffd700${Te6edf3PKGTffd700}Ta5d6ff"/.dylibs/libcodec2*.dylib
Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/libTa5d6ff"/libcodec2*.dylib
Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/libTa5d6ff"/libcodec2.so*
Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/libTa5d6ff"/libcodec2.dll
Tff7b72)
Tffa657shopt -u nullglob

Te6edf3libsTff7b72=Tff7b72(Tff7b72)
Tff7b72for _lib Tff7b72in Ta5d6ff"Tffd700${Te6edf3candidatesTb4b4b4[@]Tffd700}Ta5d6ff"Tb4b4b4; Tff7b72do
Tff7b72if Tff7b72[Tff7b72[ -f Ta5d6ff"Tffd700${Te6edf3_libTffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Te6edf3libsTff7b72+=Tff7b72(Ta5d6ff"Tffd700${Te6edf3_libTffd700}Ta5d6ff"Tff7b72)
Tff7b72fi
Tff7b72done

Tff7b72if Tff7b72[Tff7b72[ Ta5d6ff"Tff7b72$(uname -sTff7b72)Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"Darwin" Tff7b72&& Tffd700${#Te6edf3libsTb4b4b4[@]Tffd700} -eq T79c0ff0 Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen codec2 verify: libcodec2 missing next to Tffd700${Te6edf3EXTTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff" expected lib/pycodec2/libcodec2.dylib or lib/libcodec2*.dylib" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi

resolve_depTff7b72(Tff7b72) Tff7b72{
Tffa657local Te6edf3depTff7b72=Ta5d6ff"Te6edf3$1Ta5d6ff"
Tffa657local so_dir
Te6edf3so_dirTff7b72=Ta5d6ff"Tff7b72$(Tffa657cd Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Tffd700${Te6edf3EXTTffd700}Ta5d6ff"Tff7b72)Ta5d6ff" Tff7b72&& Tffa657pwdTff7b72)Ta5d6ff"
Tff7b72case Ta5d6ff"Tffd700${Te6edf3depTffd700}Ta5d6ff" Tff7b72in
@executable_path/*Tff7b72)
Tffa657printf Ta5d6ff'%s\n' Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/Tffd700${Te6edf3depTb4b4b4#@executable_path/Tffd700}Ta5d6ff"
Tb4b4b4;Tb4b4b4;
@loader_path/*Tff7b72)
Tffa657printf Ta5d6ff'%s\n' Ta5d6ff"Tffd700${Te6edf3so_dirTffd700}Ta5d6ff/Tffd700${Te6edf3depTb4b4b4#@loader_path/Tffd700}Ta5d6ff"
Tb4b4b4;Tb4b4b4;
@rpath/*Tff7b72)
Tffa657printf Ta5d6ff'%s\n' Ta5d6ff"Tffd700${Te6edf3BUILD_EXETffd700}Ta5d6ff/lib/Tffd700${Te6edf3depTb4b4b4#@rpath/Tffd700}Ta5d6ff"
Tb4b4b4;Tb4b4b4;
/*Tff7b72)
Tffa657printf Ta5d6ff'%s\n' Ta5d6ff"Tffd700${Te6edf3depTffd700}Ta5d6ff"
Tb4b4b4;Tb4b4b4;
*Tff7b72)
Tffa657printf Ta5d6ff'%s\n' Ta5d6ff"Tffd700${Te6edf3so_dirTffd700}Ta5d6ff/Tffd700${Te6edf3depTffd700}Ta5d6ff"
Tb4b4b4;Tb4b4b4;
Tff7b72esac
Tff7b72}

Tff7b72if Tff7b72[Tff7b72[ Ta5d6ff"Tff7b72$(uname -sTff7b72)Ta5d6ff" Tff7b72=Tff7b72= Ta5d6ff"Darwin" Tff7b72]Tff7b72] Tff7b72&& Tffa657command -v otool >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Tff7b72while Te6edf3IFSTff7b72= Tffa657read -r depTb4b4b4; Tff7b72do
Tff7b72[Tff7b72[ -n Ta5d6ff"Tffd700${Te6edf3depTffd700}Ta5d6ff" Tff7b72]Tff7b72] Tff7b72|| Tff7b72continue
Tff7b72case Ta5d6ff"Tffd700${Te6edf3depTffd700}Ta5d6ff" Tff7b72in
/opt/homebrew/* Tb4b4b4| /usr/local/* Tb4b4b4| /opt/local/*Tff7b72)
Tffa657echo Ta5d6ff"Ta5d6fffrozen codec2 verify: Tffd700${Te6edf3EXTTffd700}Ta5d6ff still links absolute Tffd700${Te6edf3depTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff" rewrite to @loader_path/libcodec2.dylib before shipping" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tb4b4b4;Tb4b4b4;
Tff7b72esac
Te6edf3resolvedTff7b72=Ta5d6ff"Tff7b72$(resolve_dep Ta5d6ff"Tffd700${Te6edf3depTffd700}Ta5d6ff"Tff7b72)Ta5d6ff"
Tff7b72if Tff7b72[Tff7b72[ ! -f Ta5d6ff"Tffd700${Te6edf3resolvedTffd700}Ta5d6ff" Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen codec2 verify: Tffd700${Te6edf3EXTTffd700}Ta5d6ff needs Tffd700${Te6edf3depTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657echo Ta5d6ff"Ta5d6ff resolved missing path: Tffd700${Te6edf3resolvedTffd700}Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Tff7b72done < <Tff7b72(otool -L Ta5d6ff"Tffd700${Te6edf3EXTTffd700}Ta5d6ff" Tb4b4b4| awk Ta5d6ff'/libcodec2/{print $1}'Tff7b72)
Tff7b72fi

Tff7b72if Tff7b72[Tff7b72[ Tffd700${#Te6edf3libsTb4b4b4[@]Tffd700} -gt T79c0ff0 Tff7b72]Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6fffrozen codec2 verify: OK (Tffd700${Te6edf3EXTTffd700}Ta5d6ff + Tffd700${Te6edf3libsTb4b4b4[0]Tffd700}Ta5d6ff)Ta5d6ff"
Tff7b72else
Tffa657echo Ta5d6ff"Ta5d6fffrozen codec2 verify: OK (Tffd700${Te6edf3EXTTffd700}Ta5d6ff, libcodec2 not bundled)Ta5d6ff"
Tff7b72fi

Served by rngit 1.5.2 - Generated in 0.06s